import pygame
import sys
import time
import os

def play_audio(file_path):
    """
    播放指定路径的音频文件（支持MP3和WAV格式）
    
    参数:
        file_path (str): 音频文件的路径
    """
    # 检查文件是否存在
    if not os.path.exists(file_path):
        print(f"错误: 文件 '{file_path}' 不存在")
        return False
    
    # 检查文件是否为支持的音频格式
    if not (file_path.lower().endswith('.mp3') or file_path.lower().endswith('.wav')):
        print(f"错误: 文件 '{file_path}' 不是支持的音频格式（MP3或WAV）")
        return False
    
    # 初始化pygame
    pygame.init()
    pygame.mixer.init()
    
    try:
        # 加载MP3文件
        pygame.mixer.music.load(file_path)
        
        # 获取文件名
        file_name = os.path.basename(file_path)
        
        # 播放音乐
        pygame.mixer.music.play()
        print(f"正在播放: {file_name}")
        
        # 等待音乐播放完毕
        while pygame.mixer.music.get_busy():
            print("播放中... 按Ctrl+C停止播放")
            time.sleep(5)
            
        return True
    
    except pygame.error as e:
        print(f"播放错误: {e}")
        return False
    
    finally:
        # 清理pygame资源
        pygame.mixer.quit()
        pygame.quit()

def main():
    # 检查命令行参数
    if len(sys.argv) < 2:
        print("使用方法: python mp3_player.py <音频文件路径>")
        return
    
    # 获取音频文件路径
    audio_file = sys.argv[1]
    
    # 播放音频文件
    play_audio(audio_file)

if __name__ == "__main__":
    main()